Conversation
❌ 2 Tests Failed:
View the top 2 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
There was a problem hiding this comment.
Pull request overview
This PR updates the SDK to use the Platform API’s first-class scheduling field for run submission/inspection (instead of embedding scheduling into custom_metadata), and regenerates the OpenAPI client to API spec v1.4.0 which introduces scheduling models and additional endpoints/params.
Changes:
- Pass
schedulingas a top-level field when submitting runs (CLI/service + platform runs resource), and display/consume scheduling from run responses (GUI + e2e). - Update deadline-exceeded logic to prefer the API response
scheduling.deadline, with a fallback to legacycustom_metadata. - Regenerate OpenAPI artifacts to v1.4.0 (adds scheduling request/response models, new artifact URL endpoint, and
for_organizationfilter for list runs).
Reviewed changes
Copilot reviewed 7 out of 51 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/aignostics/platform/e2e_test.py | Adjusts e2e submission to send top-level scheduling and reads deadline from response scheduling field (fallback to legacy metadata). |
| tests/aignostics/application/utils_test.py | Adds/updates unit tests for deadline-exceeded logic with new scheduling-first behavior. |
| src/aignostics/platform/resources/runs.py | Extends runs.submit() to accept and forward top-level scheduling. |
| src/aignostics/application/_utils.py | Changes deadline-exceeded helper to prioritize response scheduling, with legacy metadata fallback. |
| src/aignostics/application/_service.py | Builds and forwards scheduling payload to platform runs submission; updates static run listing to pass scheduling. |
| src/aignostics/application/_gui/_page_application_run_describe.py | Displays due date / deadline from the run response scheduling field. |
| codegen/out/docs/PublicApi.md | Regenerated API docs (v1.4.0), including new artifact URL endpoint and updated list runs params. |
| codegen/out/aignx/codegen/rest.py | Updates generated client header to OpenAPI doc version 1.4.0. |
| codegen/out/aignx/codegen/models/version_read_response.py | Regenerated model (adds stricter version typing/validation). |
| codegen/out/aignx/codegen/models/validation_error_loc_inner.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/validation_error.py | Regenerated model to include input/ctx. |
| codegen/out/aignx/codegen/models/user_read_response.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/scheduling_response.py | New generated model for scheduling fields returned in run responses. |
| codegen/out/aignx/codegen/models/scheduling_request.py | New generated model for scheduling constraints in run creation. |
| codegen/out/aignx/codegen/models/run_termination_reason.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/run_state.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/run_read_response.py | Adds scheduling field to run response model. |
| codegen/out/aignx/codegen/models/run_output.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/run_item_statistics.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/run_creation_response.py | Makes run_id required (per spec). |
| codegen/out/aignx/codegen/models/run_creation_request.py | Adds scheduling to run creation request model. |
| codegen/out/aignx/codegen/models/output_artifact_visibility.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/output_artifact_scope.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/output_artifact_result_read_response.py | Adjusts error fields ordering and marks download_url deprecated in schema representation. |
| codegen/out/aignx/codegen/models/output_artifact.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/organization_read_response.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/me_read_response.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/item_termination_reason.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/item_state.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/item_result_read_response.py | Adds error_code as an explicit nullable field ordering in generated model. |
| codegen/out/aignx/codegen/models/item_output.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/item_creation_request.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/input_artifact_creation_request.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/input_artifact.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/http_validation_error.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/custom_metadata_update_response.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/custom_metadata_update_request.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/artifact_termination_reason.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/artifact_state.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/artifact_output.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/application_version.py | Regenerated model (adds stricter version typing/validation). |
| codegen/out/aignx/codegen/models/application_read_short_response.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/application_read_response.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/models/init.py | Updates exported generated models to include scheduling request/response. |
| codegen/out/aignx/codegen/exceptions.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/configuration.py | Updates debug report API version to 1.4.0. |
| codegen/out/aignx/codegen/api_client.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/api/public_api.py | Updates resource paths and adds new artifact URL endpoint + list runs for_organization param. |
| codegen/out/.openapi-generator/FILES | Adds scheduling request/response files to generator manifest. |
| codegen/in/openapi.json | Updates OpenAPI spec to v1.4.0 and adds scheduling + new endpoint/params. |
| codegen/in/archive/openapi_1.4.0.json | Adds archived OpenAPI 1.4.0 spec snapshot. |
e3cd812 to
fe73569
Compare
|
Claude finished @nahua-aignx's task in 14m 51s —— View job PR Review: Scheduling Payload Migration (PAPI-4701)This PR migrates scheduling information from Summary✅ What's Good:
3 issues identified (2 from Copilot review confirmed + 1 additional) - see inline comments for details. Critical Issues (Must Fix Before Merge)1. 🚨 Breaking Change: Parameter Order in
|
There was a problem hiding this comment.
Pull request overview
This PR updates the SDK to support a first-class scheduling field in run submission payloads (instead of embedding scheduling under custom_metadata), and updates run consumers (service/UI/tests) to prefer the scheduling field returned by the API while keeping backward compatibility for older runs.
Changes:
- Add
schedulingto run submission (Runs.submit(...)) and update application run submission/service + e2e test payloads accordingly. - Update deadline handling logic to prefer
run.scheduling.deadline(API response) with fallback to legacycustom_metadata["sdk"]["scheduling"]["deadline"], and expand unit tests around this behavior. - Regenerate OpenAPI client artifacts for API v1.4.0 (adds scheduling request/response models and new/updated endpoints).
Reviewed changes
Copilot reviewed 7 out of 51 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/aignostics/platform/e2e_test.py | Submits scheduling as a top-level payload field and reads deadline from API scheduling response with legacy fallback. |
| tests/aignostics/application/utils_test.py | Adds unit tests for scheduling-object precedence and updates existing tests to use the new function signature. |
| src/aignostics/platform/resources/runs.py | Extends Runs.submit() to accept an optional scheduling payload field. |
| src/aignostics/application/_utils.py | Updates deadline-exceeded logic to prefer API scheduling response with fallback to legacy custom metadata. |
| src/aignostics/application/_service.py | Builds/forwards scheduling as a top-level run submission field and updates run listing to pass scheduling to deadline helper. |
| src/aignostics/application/_gui/_page_application_run_describe.py | Displays scheduling (due date/deadline) from the API response in the run describe UI. |
| codegen/out/docs/PublicApi.md | Regenerated API docs reflecting v1.4.0 additions/changes. |
| codegen/out/aignx/codegen/rest.py | Bumps generated OpenAPI document version metadata to 1.4.0. |
| codegen/out/aignx/codegen/models/version_read_response.py | Regenerated model (adds validators/typing updates). |
| codegen/out/aignx/codegen/models/validation_error_loc_inner.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/validation_error.py | Regenerated model (adds input/ctx fields). |
| codegen/out/aignx/codegen/models/user_read_response.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/scheduling_response.py | New generated model for scheduling fields in run responses. |
| codegen/out/aignx/codegen/models/scheduling_request.py | New generated model for scheduling constraints in run creation requests. |
| codegen/out/aignx/codegen/models/run_termination_reason.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/run_state.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/run_read_response.py | Regenerated model adding scheduling: Optional[SchedulingResponse]. |
| codegen/out/aignx/codegen/models/run_output.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/run_item_statistics.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/run_creation_response.py | Regenerated model (makes run_id required). |
| codegen/out/aignx/codegen/models/run_creation_request.py | Regenerated model adding scheduling: Optional[SchedulingRequest]. |
| codegen/out/aignx/codegen/models/output_artifact_visibility.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/output_artifact_scope.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/output_artifact_result_read_response.py | Regenerated model (field ordering/defaults adjusted; download_url marked deprecated in spec). |
| codegen/out/aignx/codegen/models/output_artifact.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/organization_read_response.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/me_read_response.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/item_termination_reason.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/item_state.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/item_result_read_response.py | Regenerated model (adds error_code and adjusts required fields). |
| codegen/out/aignx/codegen/models/item_output.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/item_creation_request.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/input_artifact_creation_request.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/input_artifact.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/http_validation_error.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/custom_metadata_update_response.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/custom_metadata_update_request.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/artifact_termination_reason.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/artifact_state.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/artifact_output.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/application_version.py | Regenerated model (adds validators/typing updates). |
| codegen/out/aignx/codegen/models/application_read_short_response.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/application_read_response.py | Regenerated model header/version metadata. |
| codegen/out/aignx/codegen/models/init.py | Regenerated exports (adds scheduling models and reorders exports). |
| codegen/out/aignx/codegen/exceptions.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/configuration.py | Regenerated metadata (API version string updated). |
| codegen/out/aignx/codegen/api_client.py | Regenerated header/version metadata. |
| codegen/out/aignx/codegen/api/public_api.py | Regenerated client (paths updated, adds artifact download endpoint, adds for_organization to list runs). |
| codegen/out/.openapi-generator/FILES | Regenerated file manifest including new scheduling models. |
| codegen/in/openapi.json | Updates stored OpenAPI spec to 1.4.0, including scheduling and new endpoints/fields. |
| codegen/in/archive/openapi_1.4.0.json | Adds archived OpenAPI 1.4.0 spec snapshot. |
fe73569 to
d445eb0
Compare
d445eb0 to
aa5de65
Compare
There was a problem hiding this comment.
Pull request overview
This PR updates the SDK to use the new top-level scheduling payload for run submission (instead of embedding scheduling data in custom_metadata), and refreshes the generated OpenAPI client artifacts to API version 1.4.0.
Changes:
- Add
schedulingsupport to run submission and propagate it through CLI/service usage and E2E validation. - Update deadline-exceeded logic to prefer the API response
schedulingfield, with legacy fallback tocustom_metadata. - Regenerate OpenAPI code/docs (API 1.4.0), including new scheduling models and a new artifact download endpoint.
Reviewed changes
Copilot reviewed 8 out of 53 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/aignostics/platform/e2e_test.py | Submits runs with top-level scheduling and validates deadlines from API response (with fallback). |
| tests/aignostics/application/utils_test.py | Expands unit tests for deadline handling with a primary scheduling-object path + legacy metadata fallback. |
| tests/aignostics/application/cli_pipeline_validation_test.py | Adjusts CLI submit test deadline to avoid immediate-expiry edge case. |
| src/aignostics/platform/resources/runs.py | Adds optional scheduling param to submit() and forwards it into RunCreationRequest. |
| src/aignostics/application/_utils.py | Updates deadline-exceeded helper to prefer scheduling.deadline over legacy metadata. |
| src/aignostics/application/_service.py | Passes run.scheduling into deadline-exceeded helper when listing runs. |
| src/aignostics/application/_gui/_page_application_run_describe.py | Displays scheduling due date/deadline from run response in the GUI describe view. |
| codegen/out/docs/PublicApi.md | Updates generated public API docs (adds artifact URL endpoint; updates list-runs parameter docs). |
| codegen/out/aignx/codegen/rest.py | Updates generated client header to OpenAPI version 1.4.0. |
| codegen/out/aignx/codegen/models/version_read_response.py | Generated model updates (adds regex validation for semantic version). |
| codegen/out/aignx/codegen/models/validation_error_loc_inner.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/validation_error.py | Generated model updated to include input and ctx fields. |
| codegen/out/aignx/codegen/models/user_read_response.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/scheduling_response.py | New generated model for scheduling fields returned by run responses. |
| codegen/out/aignx/codegen/models/scheduling_request.py | New generated model for scheduling constraints in run creation. |
| codegen/out/aignx/codegen/models/run_termination_reason.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/run_state.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/run_read_response.py | Adds scheduling to run read response model. |
| codegen/out/aignx/codegen/models/run_output.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/run_item_statistics.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/run_creation_response.py | Makes run_id required in the creation response model. |
| codegen/out/aignx/codegen/models/run_creation_request.py | Adds scheduling to run creation request model. |
| codegen/out/aignx/codegen/models/output_artifact_visibility.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/output_artifact_scope.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/output_artifact_result_read_response.py | Generated model updates around error_code and download_url field ordering/defaults. |
| codegen/out/aignx/codegen/models/output_artifact.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/organization_read_response.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/me_read_response.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/item_termination_reason.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/item_state.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/item_result_read_response.py | Generated item result model updates (notably error_code placement/defaults). |
| codegen/out/aignx/codegen/models/item_output.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/item_creation_request.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/input_artifact_creation_request.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/input_artifact.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/http_validation_error.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/custom_metadata_update_response.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/custom_metadata_update_request.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/artifact_termination_reason.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/artifact_state.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/artifact_output.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/application_version.py | Generated model updates (adds regex validation for semantic version). |
| codegen/out/aignx/codegen/models/application_read_short_response.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/application_read_response.py | Generated model header version bump to 1.4.0. |
| codegen/out/aignx/codegen/models/init.py | Updates generated model export list to include new scheduling models. |
| codegen/out/aignx/codegen/exceptions.py | Generated code header version bump to 1.4.0. |
| codegen/out/aignx/codegen/configuration.py | Generated config updates API version shown in debug report. |
| codegen/out/aignx/codegen/api_client.py | Generated code header version bump to 1.4.0. |
| codegen/out/aignx/codegen/api/public_api.py | Adds generated method for artifact URL endpoint; updates list-runs query args. |
| codegen/out/.openapi-generator/FILES | Adds scheduling model files to generator manifest. |
| codegen/in/openapi.json | Updates bundled OpenAPI spec to 1.4.0 (scheduling fields, new endpoint, etc.). |
| codegen/in/archive/openapi_1.4.0.json | Stores archived OpenAPI 1.4.0 spec snapshot. |
| Makefile | Minor formatting tweaks + adjusts sed -i invocation formatting for codegen patch step. |
aa5de65 to
92d9a29
Compare
There was a problem hiding this comment.
Pull request overview
This PR updates the SDK to send run scheduling constraints (due_date, deadline) via the first-class scheduling request field (instead of embedding them under custom_metadata.sdk.scheduling), and refreshes the generated OpenAPI client/models to API version 1.4.0.
Changes:
- Move scheduling payload to top-level
schedulingin run submission flows (SDK, CLI/GUI, and e2e tests), with backward-compatible read fallback to legacycustom_metadata. - Add/extend validation utilities (
validate_deadline, cross-field scheduling constraints) and broaden unit test coverage for the new scheduling response shape. - Regenerate OpenAPI client/docs/models for API v1.4.0 (adds scheduling request/response models and new endpoints/params).
Reviewed changes
Copilot reviewed 10 out of 55 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/aignostics/platform/e2e_test.py | Sends scheduling as top-level field and reads deadline from response scheduling with legacy fallback. |
| tests/aignostics/application/utils_test.py | Adds unit tests for deadline-exceeded logic using scheduling response object, plus legacy fallback tests. |
| tests/aignostics/application/service_test.py | Adds unit tests for validate_deadline and cross-field scheduling constraint validation. |
| tests/aignostics/application/gui_test.py | Adjusts GUI scheduling test inputs (due date + deadline). |
| tests/aignostics/application/cli_pipeline_validation_test.py | Avoids deadline=now by pushing CLI deadline slightly into the future. |
| src/aignostics/platform/resources/runs.py | Adds scheduling parameter to runs.submit() and includes it in RunCreationRequest. |
| src/aignostics/application/_utils.py | Adds deadline validation + scheduling helpers; updates deadline-exceeded logic to prefer response scheduling. |
| src/aignostics/application/_service.py | Validates deadline + constraints; submits scheduling as top-level field. |
| src/aignostics/application/_gui/_page_application_run_describe.py | Displays scheduling info from run response scheduling field. |
| codegen/out/docs/PublicApi.md | Regenerated API docs (incl. new artifact URL endpoint, list-runs param changes). |
| codegen/out/aignx/codegen/rest.py | Regenerated client runtime with updated OpenAPI version header. |
| codegen/out/aignx/codegen/models/version_read_response.py | Regenerated model with stricter semver validation. |
| codegen/out/aignx/codegen/models/validation_error_loc_inner.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/validation_error.py | Regenerated ValidationError shape (adds input, ctx). |
| codegen/out/aignx/codegen/models/user_read_response.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/scheduling_response.py | New generated model for scheduling fields in run responses. |
| codegen/out/aignx/codegen/models/scheduling_request.py | New generated model for scheduling constraints in run create requests. |
| codegen/out/aignx/codegen/models/run_termination_reason.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/run_state.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/run_read_response.py | Adds scheduling field to run read response model. |
| codegen/out/aignx/codegen/models/run_output.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/run_item_statistics.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/run_creation_response.py | Makes run_id required (aligns with spec). |
| codegen/out/aignx/codegen/models/run_creation_request.py | Adds scheduling to run creation request model. |
| codegen/out/aignx/codegen/models/output_artifact_visibility.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/output_artifact_scope.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/output_artifact_result_read_response.py | Updates output artifact result fields/order and deprecations per spec. |
| codegen/out/aignx/codegen/models/output_artifact.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/organization_read_response.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/me_read_response.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/item_termination_reason.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/item_state.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/item_result_read_response.py | Updates item result schema (incl. error_code field changes). |
| codegen/out/aignx/codegen/models/item_output.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/item_creation_request.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/input_artifact_creation_request.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/input_artifact.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/http_validation_error.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/custom_metadata_update_response.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/custom_metadata_update_request.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/artifact_termination_reason.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/artifact_state.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/artifact_output.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/application_version.py | Regenerated model with semver validation. |
| codegen/out/aignx/codegen/models/application_read_short_response.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/application_read_response.py | Regenerated model version header updates. |
| codegen/out/aignx/codegen/models/init.py | Regenerated models export list. |
| codegen/out/aignx/codegen/exceptions.py | Regenerated exceptions module version header updates. |
| codegen/out/aignx/codegen/configuration.py | Updates debug report API version string. |
| codegen/out/aignx/codegen/api_client.py | Regenerated client module version header updates. |
| codegen/out/aignx/codegen/api/public_api.py | Adds new endpoint and updates list-runs signature/params per spec. |
| codegen/out/.openapi-generator/FILES | Tracks newly generated files (scheduling models). |
| codegen/in/openapi.json | Updates stored OpenAPI spec to 1.4.0 (adds scheduling and other schema changes). |
| codegen/in/archive/openapi_1.4.0.json | Adds archived OpenAPI 1.4.0 spec snapshot. |
| Makefile | Updates codegen sed invocation (in-place patch step). |
6defed6 to
6f552a0
Compare
6f552a0 to
f31112d
Compare
There was a problem hiding this comment.
Pull request overview
This PR updates the SDK to send and consume run scheduling constraints (due_date, deadline) via the API’s first-class scheduling field (instead of embedding it in custom_metadata), and refreshes generated OpenAPI artifacts to Platform API 1.4.0.
Changes:
- Add
schedulingsupport to run submission (SDK + tests), and update run status/deadline logic to prefer the API responseschedulingfield with a legacy fallback. - Add validation helpers for
deadlineand cross-field scheduling constraints in the application service layer, plus expanded unit tests. - Regenerate OpenAPI client/docs (new scheduling models, new artifact download endpoint, API version bump) and improve
make codegenportability.
Reviewed changes
Copilot reviewed 11 out of 55 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tests/aignostics/platform/e2e_test.py | Submit runs with top-level scheduling; read deadline from API response with fallback. |
| tests/aignostics/application/utils_test.py | Expand unit tests for deadline-exceeded logic using scheduling response object + legacy metadata. |
| tests/aignostics/application/service_test.py | Add unit tests for validate_deadline and validate_scheduling_constraints. |
| tests/aignostics/application/gui_test.py | Update GUI E2E scheduling inputs (due date + longer deadline). |
| tests/aignostics/application/cli_pipeline_validation_test.py | Avoid “deadline == now” by using a small future offset. |
| src/aignostics/platform/resources/runs.py | Add scheduling arg to Runs.submit and include it in the create payload. |
| src/aignostics/application/_utils.py | Add deadline validation + cross-field constraints; update deadline-exceeded logic to prefer API scheduling. |
| src/aignostics/application/_service.py | Validate deadline + constraints; submit scheduling as top-level request field. |
| src/aignostics/application/_gui/_page_application_run_describe.py | Display scheduling info from the API response field. |
| codegen/out/docs/PublicApi.md | OpenAPI doc regen; includes new endpoint and parameters. |
| codegen/out/aignx/codegen/** | Regenerated OpenAPI client/models including scheduling request/response models. |
| codegen/in/openapi.json | Update OpenAPI spec to 1.4.0 (scheduling fields, new endpoint, etc.). |
| codegen/in/archive/openapi_1.4.0.json | Archive the 1.4.0 OpenAPI spec snapshot. |
| Makefile | Make the sed patch step portable across GNU/BSD sed. |
f31112d to
dd80f41
Compare
| payload_kwargs: dict[str, Any] = { | ||
| "application_id": application_id, | ||
| "version_number": application_version, | ||
| "custom_metadata": cast("dict[str, Any]", convert_to_json_serializable(custom_metadata)), | ||
| "items": items, | ||
| } | ||
| if scheduling is not None: | ||
| payload_kwargs["scheduling"] = scheduling | ||
| payload = RunCreationRequest(**payload_kwargs) |
There was a problem hiding this comment.
Since scheduling is optional and nullable in the model, why not just add something like this
payload = RunCreationRequest(
...
scheduling = scheduling or None
)|
|
||
|
|
||
| @pytest.mark.unit | ||
| def test_validate_deadline_none() -> None: |
There was a problem hiding this comment.
These tests are validating functions from the utils so should probably be in application/utils_test.py?
There was a problem hiding this comment.
Pull request overview
This PR updates the SDK and tests to support the Platform API’s new first-class scheduling field for runs (instead of embedding scheduling constraints under custom_metadata.sdk), alongside an OpenAPI spec/codegen refresh to API version 1.4.0.
Changes:
- Add
schedulingto run submission payloads and update e2e/UI flows to display/measure deadlines via the API response field. - Add validation helpers for
deadlineplus cross-field scheduling constraints (due_date < deadline) and update deadline-exceeded logic to prefer APIscheduling. - Refresh OpenAPI spec + regenerate client/models/docs (new scheduling models, new artifact URL endpoint, schema tweaks).
Reviewed changes
Copilot reviewed 11 out of 55 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/aignostics/platform/e2e_test.py | Switch e2e submission to top-level scheduling; resolve deadline from response scheduling field. |
| tests/aignostics/application/utils_test.py | Add unit tests for deadline-exceeded logic using scheduling object + legacy custom_metadata fallback. |
| tests/aignostics/application/service_test.py | Add unit tests for validate_deadline and validate_scheduling_constraints. |
| tests/aignostics/application/gui_test.py | Update GUI scheduling step inputs (due date + longer deadline). |
| tests/aignostics/application/cli_pipeline_validation_test.py | Adjust CLI tests’ deadline argument to be in the future. |
| src/aignostics/platform/resources/runs.py | Extend Runs.submit() with optional scheduling and include it in RunCreationRequest. |
| src/aignostics/application/_utils.py | Add deadline validation + cross-field constraints; prefer API scheduling.deadline in deadline-exceeded checks. |
| src/aignostics/application/_service.py | Validate deadline + constraints; send scheduling as top-level run submit field. |
| src/aignostics/application/_gui/_page_application_run_describe.py | Display scheduling (due date/deadline) from run response in the describe page. |
| codegen/out/docs/PublicApi.md | Regenerated API docs (includes new artifact URL endpoint and parameter updates). |
| codegen/out/aignx/codegen/rest.py | Regenerated client header/version updates. |
| codegen/out/aignx/codegen/models/version_read_response.py | Regenerated model changes (semver regex validation, typing updates). |
| codegen/out/aignx/codegen/models/validation_error_loc_inner.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/validation_error.py | Regenerated model fields (adds input/ctx). |
| codegen/out/aignx/codegen/models/user_read_response.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/scheduling_response.py | New generated model for scheduling in run responses. |
| codegen/out/aignx/codegen/models/scheduling_request.py | New generated model for scheduling in run creation requests. |
| codegen/out/aignx/codegen/models/run_termination_reason.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/run_state.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/run_read_response.py | Regenerated model adds scheduling field. |
| codegen/out/aignx/codegen/models/run_output.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/run_item_statistics.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/run_creation_response.py | Regenerated model adjusts run_id requiredness/typing. |
| codegen/out/aignx/codegen/models/run_creation_request.py | Regenerated model adds scheduling to request schema. |
| codegen/out/aignx/codegen/models/output_artifact_visibility.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/output_artifact_scope.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/output_artifact_result_read_response.py | Regenerated model field ordering/optional defaults. |
| codegen/out/aignx/codegen/models/output_artifact.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/organization_read_response.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/me_read_response.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/item_termination_reason.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/item_state.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/item_result_read_response.py | Regenerated model field ordering/optional defaults. |
| codegen/out/aignx/codegen/models/item_output.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/item_creation_request.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/input_artifact_creation_request.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/input_artifact.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/http_validation_error.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/custom_metadata_update_response.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/custom_metadata_update_request.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/artifact_termination_reason.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/artifact_state.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/artifact_output.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/application_version.py | Regenerated model adds semver regex validation. |
| codegen/out/aignx/codegen/models/application_read_short_response.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/application_read_response.py | Regenerated model header/version updates. |
| codegen/out/aignx/codegen/models/init.py | Regenerated exports list ordering including scheduling models. |
| codegen/out/aignx/codegen/exceptions.py | Regenerated client header/version updates. |
| codegen/out/aignx/codegen/configuration.py | Regenerated client version string updates. |
| codegen/out/aignx/codegen/api_client.py | Regenerated client header/version updates. |
| codegen/out/aignx/codegen/api/public_api.py | Regenerated API client methods (new artifact URL endpoint, list_runs param updates, etc.). |
| codegen/out/.openapi-generator/FILES | Regenerated file manifest includes scheduling models. |
| codegen/in/openapi.json | Updated OpenAPI input spec to 1.4.0 including scheduling fields. |
| codegen/in/archive/openapi_1.4.0.json | Added archived OpenAPI spec snapshot for 1.4.0. |
| Makefile | Make codegen sed step portable across GNU/BSD sed variants. |
b4db3b7 to
46699a6
Compare
There was a problem hiding this comment.
Pull request overview
This PR updates the SDK to use the Platform’s new first-class scheduling field on run creation (instead of embedding scheduling under custom_metadata.sdk), along with regenerating the OpenAPI client to API version 1.4.0 and adjusting tests/GUI to reflect the new contract.
Changes:
- Add
schedulingto run submission (SDK resources + application service) and validatedue_date/deadlineincluding cross-field constraints. - Update e2e + unit tests and GUI run description rendering to read scheduling from the API response field.
- Regenerate OpenAPI client output for API
1.4.0(adds scheduling models/fields, new endpoint docs, schema tweaks).
Reviewed changes
Copilot reviewed 11 out of 55 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/aignostics/platform/e2e_test.py | Sends scheduling in submit + reads deadline from API scheduling, with fallback helper |
| tests/aignostics/application/utils_test.py | Adds/updates unit tests for deadline/scheduling validation + deadline exceeded logic |
| tests/aignostics/application/service_test.py | Removes duplicated validate_due_date tests from service tests |
| tests/aignostics/application/gui_test.py | Adjusts GUI scheduling time inputs used by the test flow |
| tests/aignostics/application/cli_pipeline_validation_test.py | Tweaks CLI deadline test input (adds small future buffer) |
| src/aignostics/platform/resources/runs.py | Extends Runs.submit() to accept scheduling and include it in RunCreationRequest |
| src/aignostics/application/_utils.py | Adds deadline + cross-field scheduling validation and updates deadline-exceeded logic to prefer API scheduling |
| src/aignostics/application/_service.py | Validates due_date/deadline and sends top-level scheduling in run submission |
| src/aignostics/application/_gui/_page_application_run_describe.py | Displays scheduling (due date/deadline) from API response in run describe page |
| codegen/out/docs/PublicApi.md | Regenerated API docs (adds artifact URL endpoint, list_runs param changes, etc.) |
| codegen/out/aignx/codegen/rest.py | Regenerated client metadata for OpenAPI version 1.4.0 |
| codegen/out/aignx/codegen/models/version_read_response.py | Regenerated model updates (semver regex validation, typing adjustments) |
| codegen/out/aignx/codegen/models/validation_error_loc_inner.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/validation_error.py | Regenerated validation error schema (adds input/ctx) |
| codegen/out/aignx/codegen/models/user_read_response.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/scheduling_response.py | New generated model for scheduling returned in run responses |
| codegen/out/aignx/codegen/models/scheduling_request.py | New generated model for scheduling request payload |
| codegen/out/aignx/codegen/models/run_termination_reason.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/run_state.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/run_read_response.py | Adds scheduling to run read response model |
| codegen/out/aignx/codegen/models/run_output.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/run_item_statistics.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/run_creation_response.py | Regenerated response schema (run_id required) |
| codegen/out/aignx/codegen/models/run_creation_request.py | Adds scheduling to run creation request model |
| codegen/out/aignx/codegen/models/output_artifact_visibility.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/output_artifact_scope.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/output_artifact_result_read_response.py | Regenerated artifact result schema (field ordering/defaults) |
| codegen/out/aignx/codegen/models/output_artifact.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/organization_read_response.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/me_read_response.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/item_termination_reason.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/item_state.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/item_result_read_response.py | Regenerated item result schema (adds error_code placement/handling) |
| codegen/out/aignx/codegen/models/item_output.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/item_creation_request.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/input_artifact_creation_request.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/input_artifact.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/http_validation_error.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/custom_metadata_update_response.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/custom_metadata_update_request.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/artifact_termination_reason.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/artifact_state.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/artifact_output.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/application_version.py | Regenerated model updates (semver regex validation, typing adjustments) |
| codegen/out/aignx/codegen/models/application_read_short_response.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/application_read_response.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/models/init.py | Regenerated models export list |
| codegen/out/aignx/codegen/exceptions.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/configuration.py | Regenerated version string + debug report API version |
| codegen/out/aignx/codegen/api_client.py | Regenerated header/version metadata |
| codegen/out/aignx/codegen/api/public_api.py | Regenerated Public API client (new endpoint + list_runs param changes) |
| codegen/out/.openapi-generator/FILES | Updates generated file manifest |
| codegen/in/openapi.json | Updates OpenAPI spec input (v1.4.0, scheduling schemas, endpoint additions) |
| codegen/in/archive/openapi_1.4.0.json | Adds archived OpenAPI spec snapshot for 1.4.0 |
| Makefile | Makes the sed-based codegen patch step portable across GNU/BSD sed |
|



No description provided.